import {useLocaleStore} from "@/store/modules/locale";

/**
 * 表格列配置类型
 */
export interface TableColumnType {
  /**
   * 列唯一标识（对应数据字段）
   */
  prop?: string;
  /**
   * 列标题
   */
  label?: string;
  /**
   * 列宽
   */
  width?: number | string;

  /**
   * 是否固定列
   */
  fixed?: 'left' | 'right' | boolean;
  /**
   * 对齐方式
   */
  align?: 'left' | 'center' | 'right';
  /**
   * 表头对齐方式
   */
  headerAlign?: 'left' | 'center' | 'right';
  /**
   * 是否可排序
   */
  sortable?: boolean | 'custom';
  /**
   * 插槽配置
   */
  slots?: {
    /**
     * 表头插槽名
     */
    header?: string;
    /**
     * 单元格插槽名
     */
    default?: string;
  };
  showOverflowTooltip?: boolean;

  type?: string;

  exportFunc?(data);

  /**
   * 对象中未明确声明的其他属性（根据Element Plus扩展）
   */
  [key: string]: any;
}

/**
 * 表格配置类型
 */
export interface TableConfigType {
  /**
   * 是否显示边框
   */
  showBorder?: boolean;
  /**
   * 全局对齐方式
   */
  align?: 'left' | 'center' | 'right';
  /**
   * 所有列配置（包括隐藏列）
   */
  columns: TableColumnType[];
  /**
   * 可见列配置（显示顺序）
   */
  visibleColumns?: TableColumnType[];

  ignoreExportProp?: (string | undefined)[]

  /**
   * 其他可能的配置项
   */
  [key: string]: any;

}

const localStore = useLocaleStore()
export const getField = (prop, propEn): string => {
  let field = localStore.isCn() ? prop : propEn
  // 根据当前语言获取对应字段的值
  if (!field) {
    field = prop ? prop : propEn
  }
  return field as string
}



